Methodology: Each variable was reclassified to a standardized 1-5 scale using natural breaks classification, enabling direct comparison across different metrics.
Python Integration: VIIRS, 311, Crime, and Census data were first integrated into philly_integrated_data.shp using geopandas
ArcGIS Processing: Reclassify tool applied to each variable → Raster Calculator combined layers
Darkness Score: Higher values = darker areas (inverted VIIRS radiance)
Range: 0.000000 - 1.000000 reclassified to 1-5 scale
Pattern: Center City shows lowest darkness scores; North and Southwest Philadelphia show highest
Low Reporting Score: Higher values = fewer complaints filed
Range: 0.000000 - 1.000000 reclassified to 1-5 scale
Insight: Areas with high darkness but low complaints indicate reporting gaps
Vulnerability Score: Based on below-median household income
Range: 0.000000 - 1.000000 reclassified to 1-5 scale
Pattern: North Philadelphia and Southwest show highest vulnerability
Crime Score: Nighttime incident density (7pm-6am)
Range: 0.000000 - 1.000000 reclassified to 1-5 scale
Correlation: High crime areas often overlap with low lighting zones
Raster Calculator:
CostSurf_Risk =
0.30 × Darkness +
0.30 × Crime +
0.20 × Low311 +
0.20 × LowIncome
Interpretation: Brighter colors = higher risk scores = priority intervention areas
Pattern: Risk concentrates in North Philadelphia, Kensington, and Southwest corridors

Key FindingCenter City is brightest; peripheral neighborhoods show significantly lower lighting levels
Focal Statistics smoothed VIIRS radiance using circular neighborhood. This revealed that downtown concentration of brightness creates stark inequality with surrounding residential areas.
Map Source: UPenn GIS - [地图名称] | 🔗 打开完整地图
Where darkness, low complaints, and low income overlap
38% below city average
65% darker than average
76% fewer than average
Three criteria overlap: 1. Low brightness (VIIRS below threshold) 2. Low complaints (311 below city average) 3. Low income (Census below median)
Identified with: Python spatial analysis using geopandas on Zonal_VIIRS_Mean output
Critical Pattern: The darkest areas file 76% fewer complaints. These are also the lowest-income neighborhoods. This means the 311 system systematically misses the communities that need help most.
Map Source: UPenn GIS - Darkening Trends | 🔗 打开完整地图
582 Areas Predicted to Darken
Of Philadelphia block groups showed decreasing light 2022-2024
Random Forest Regressor
Algorithm: Random Forest Regressor (scikit-learn)
Hyperparameter Tuning: GridSearchCV for optimal parameters
Top Predictive Features: - Historical brightness trend (-0.035 per year average) - Current VIIRS level - 311 complaint density - Income & population
Validation: Cross-validation R² = 0.612
Urgent FindingPhiladelphia lighting is declining citywide.
Model predicts 582 areas will continue to darken. 80% of Philadelphia already showing decline. Priority intervention needed before infrastructure failure.
Streetlights date to the 1970s. Our 2022-2024 data captures the critical transition before the city’s $91M LED replacement project (launched Aug 2023).
Map Source: UPenn GIS - Safe Path Analysis | 🔗 打开完整地图
52 routes analyzed between key Philadelphia locations: - City Hall - Temple University
- 30th Street Station - University City - Chinatown - Major transit hubs
Methods: - ArcGIS: Distance Accumulation + Optimal Path - Python: OSMnx + NetworkX for street-level routing with risk-weighted edges
Up to 20% Safer Routes
Key FindingChinatown route shows greatest risk reduction
By accepting a small distance penalty (1-3% longer), travelers can reduce their exposure to high-risk areas by up to 20%.
Priority areas were identified by combining: 1. Complaint Gap status (weight: 40%) 2. Predicted darkening (weight: 30%) 3. Current risk score (weight: 20%) 4. Population density (weight: 10%)
Result: Ranked list of neighborhoods requiring immediate intervention
Workflow Summary
Python (geopandas): Integrated VIIRS, 311, Crime, Census
philly_integrated_data.shpArcGIS Reclassify: Standardized each variable to 1-5 scale
ArcGIS Raster Calculator: Combined layers
CostSurf_RiskArcGIS Spatial Analysis: Zonal Statistics + Focal Statistics
Python Analysis: Identified Complaint Gap areas using spatial overlay
scikit-learn: Trained Random Forest for darkening prediction
OSMnx + NetworkX: Generated risk-weighted safe routes
Continue to Findings to see policy recommendations and conclusions.